1. Field of the Invention
The present invention relates to daisy-chained communication devices and in particular relates to apparatus and associated methods for enabling dynamic reconfiguration of daisy-chained communication topologies to subdivide or reconfigure daisy-chained communication systems for improved performance.
2. Description of Related Art
Daisy-chained communication media and methods are now commonly applied to interconnect a plurality of communication control devices. In the application of such communication media to computer mass storage interfaces, one or more storage controller devices (e.g., host adapters or RAID controllers) may be connected to a plurality of storage devices (e.g., disk drives or array modules) by redundant daisy-chained communication strings or loops. Fibre Channel Arbitrated Loops (FC-AL) and IBM's Serial Storage Architecture (SSA) are common applications of such communication standards for the interconnection of storage controllers and storage devices.
A string or loop communication medium is often configured in a daisy-chained manner as distinct from a bus configuration. In other words, information flows from one device, through the medium, into the neighboring device. The neighboring device determines whether the information is to be processed therein or to be directed to another device. If the information is to be processed by another device, the neighboring device repeats the process and transmits (forwards) the information to its neighbor, etc., until the information reaches its intended destination. In other words, all information passes through intervening nodes on its way from a source device to a destination device. This is as distinguished from a bus configuration in which all nodes exchange information over a bus connecting all devices in a parallel fashion.
FC-AL devices perform arbitration when one node wishes to establish a link (a logical circuit) to a second node. When the temporary circuit is established, all other nodes on the loop are essentially idle--operating in a monitoring state to pass all received messages to its downstream neighbor, toward the destination node. Therefore, only two devices on a loop are using bandwidth of the loop at a given point in time. It is therefore a problem in FC-AL applications that a large number of nodes on the medium are idle while only two devices consume the entire bandwidth of the communication medium.
In addition, since FC-AL communications between an initiator and target pass through all nodes on the loop, each node may impart a delay before the message is passed on to its neighbor node for routing to the intended target. The cumulative delay generated is therefore proportional to the number of nodes in a communication loop. FC-AL communication bandwidth is therefore, in part, limited by the number of nodes on the loop. It is therefore another problem in FC-AL applications that large loops consume a part of the available media bandwidth in wasted delay times in proportion to the number of nodes on the loop.
SSA applications may be configured in string or loop daisy-chained configurations. In addition, switching port devices (essentially routing devices operable based on the device addressing) may be used to create "network" topologies combining various loops, strings, and networks. In accordance with SSA standards, a message is sent from a first node to a second node on the medium (on the string, loop or network). In general, messages generated in response to receipt of the first message are returned from the second node to the first node in the opposite direction on the same string, loop, or network. As in FC-AL applications, intervening nodes in the path between to communicating nodes are occupied to pass received information from their upstream neighbor to their downstream neighbor. However, only those nodes on the segment of the medium intervening the two communicating nodes are so occupied. The number of such intervening nodes is referred to as the "hop count." The entire bandwidth of the segment of the SSA medium between two communicating nodes is therefore consumed by a single pair of communicating nodes. The remaining segment(s) of the SSA medium is (are) available for use other communicating nodes.
In an SSA loop communication application, information may flow in either direction around the loop from a first node to a second node. One path may be in use by other communicating nodes or one path around the loop may have fewer intervening nodes (smaller hop count) than the other path. Therefore, in SSA loop configurations, there exists a preferred direction and path for communicating between two nodes--that which has the fewest intervening nodes and/or is available. SSA nodes (in a loop configuration in particular) therefore determine the preferred path for communications when a transfer is initiated to another node.
Spatial reuse techniques are applied to SSA communication media to utilize unused segments of the SSA medium for other communicating devices while other segments are in use by particular communicating pair of nodes. However, it remains a problem that the particular intervening nodes in any one segment of the SSA medium are precluded from use of the SSA medium bandwidth while that segment is in use. Placement of nodes in an SSA communication medium may therefore affect the overall utilization of the available bandwidth. If a particular pair of nodes are frequently communicating, the intervening nodes between that pair are precluded from any use of the SSA medium, despite that fact that other portions of the medium (outside the section used by a currently communicating pair of nodes) are available for other communication traffic (as provided by spatial reuse techniques).
In addition, as for FC-AL applications, a larger hop count translates to larger delay times for communications due to the delay imposed as the messages pass through each intervening node. A smaller hop count is therefore desirable.
The topology of FC-AL and SSA communication applications is generally fixed and determined by the cabling configuration connecting nodes to the medium. Presently known techniques and devices do not therefore allow the topology to be reconfigured to optimize the topology for particular benefit of the application. For example in SSA applications where a plurality of storage control modules and storage devices are connected to the medium, one ordering of the devices on the medium may be preferred where the controllers operate independent of one another (i.e., minimize hop counts between each controller and the storage devices) while another ordering may be preferred where the controllers cooperate to provided redundant and/or mirrored operation (i.e., minimize hop count between the cooperating controllers). More generally, it would be desirable to permit reconfiguration of a daisy-chained communication medium to optimize available bandwidth and bandwidth utilization in response to a particular operational environment in which the communication application is started.
It is apparent from the above discussion that a need exists for methods and associated apparatus which permit performance tuning and optimization of a daisy-chained communication application topology to increase available bandwidth and/or to improve bandwidth utilization.